In a web service-oriented architecture, web services make software functionality available over the Internet so that computer programs can make a request to a program running on another server (a web service) and use that program's response in a website or other application.
The web service provider defines a format for requests for its web service and the response the web service will generate. The web service consumer makes a request for the web service over the Internet. The web service then performs some action and sends a response back. The action performed by the web service might be, for example, finding the availability and price of an airline flight or retrieving a stock quote.
Communication between the web service provider and the web service consumer may be accomplished using extensible mark-up language (XML). In order for a web service consumer to request and receive information from a web service provider, the web service consumer must use an XML query that employs the same data type definitions as those employed by the web service provider. These definitions, called an XML schema, are usually based on a vocabulary established and agreed upon in advance. This agreement can be within an organization or between organizations, such as within an industry. Many industries have created industry-specific XML schema to facilitate interoperability of web services within each industry. For example, there are industry-specific schema for the accounting, education, and manufacturing industries, to name just a few. Additionally, schema may be described using Web Services Description Language (WSDL).
In addition to using the same data type definitions, the XML query used by the web service consumer must use the same corresponding structural levels as used by the web service provider. The required matching data type definitions must be located on the same structural level in both the XML query and the web service.
One problem with XML schema, even within an industry, is that competition, progress, new standards, and differing needs mean that global standards for even the simplest web services are unlikely. One example of this is travel reservation industry. The major Global Distribution Systems (GDS), such as Sabre, Amadeus, Worldspan, and Galileo, have each created their own XML standards. When referring to an airline on which a flight is available, one GDS may use the term “airline” while another GDS may use the term “carrier.” An XML query written using “carrier” would not be successful in requesting information from the GDS which uses “airline.”
The web service consumer must identify which web service provider can provide the necessary web service, and also identify the schema used by the specific web service provider. Current service discovery schemes rely on a name and keyword-based characterstics. Examples include Universal Description, Discovery, and Integration (UDDI), Java's Jini protocol, and CORBA Trading Service. Due to the large number of web services available and the numerous sources of information regarding the web services, it can be difficult to identify the desired web service and its associated schema.
Once the desired web service is identified, the web service consumer must then create an XML query using the precise schema on the precise structural levels as demanded by the web service provider. If the XML query does not exactly match the schema and structural levels, then it will not be successful.
As such, there is a need for a system, method, and computer program product capable of facilitating the use of web services by simplifying the process of locating and communicating with web services.